<?php
class main {
    // POST用户信息
    public function getUserInfo ($token) {
        // 获取输入token的未URL编码格式
        $token = $this->ifUrl($token)["decode"];
        // 获取用户信息的POST数据
        $POSTData = json_encode(array(
            'appId' => 1,
            'channelMasterId' => 1,
            'channelToken' => array(
                'token' => $token
            )
        ));
        // 获取用户数据的POST头
        $POSTHeader = stream_context_create([
            'http' => [
                'method' => 'POST',
                'header' => "Content-Type: application/json;charset=UTF-8"."Content-Length: " . mb_strlen($POSTData),
                'content' => $POSTData
            ]
        ]);
        // 鹰角API返回的内容
        @$POST_res = file_get_contents('https://as.hypergryph.com/u8/user/info/v1/basic', false, $POSTHeader);
        // 判断POST请求是否出错
        if ($POST_res){
            // 返回用户信息
            return json_decode($POST_res,true);
        }else{
            http_response_code(400);
            return exit(json_encode(array(
                'status' => false,
                'msg' => '博士，阿米娅暂时无法获取到您的身份信息，也许是博士提供的token过期或者输入错误，博士可以尝试去鹰角那边重新登陆一下',
            ),JSON_UNESCAPED_UNICODE));
        }
    }
    // 判断是token否需要URL编码
    public function ifUrl ($token):array {
        // 输出数组
        $out = array();
        // token需要满足长度为24位或者无%号的要求
        if (substr_count($token,"%") == 0 && mb_strlen($token) == 24) {
            $out["decode"] = $token;
            $out["encode"] = urlencode($token);
        }else {
            $out["decode"] = urldecode($token);
            $out["encode"] = $token;
        }
        return $out;
    }
}